/**
 * <copyright>
 * </copyright>
 *
 * 
 */
package de.claaswilke.presents.resource.presents.grammar;

public class PresentsGrammarInformationProvider {
	
	public final static org.eclipse.emf.ecore.EStructuralFeature ANONYMOUS_FEATURE = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEAttribute();
	static {
		ANONYMOUS_FEATURE.setName("_");
	}
	
	public final static PresentsGrammarInformationProvider INSTANCE = new PresentsGrammarInformationProvider();
	
	private java.util.Set<String> keywords;
	
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_0_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("Persons", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_0_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_0_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("{", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_0_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_0_0_0_4_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__PERSONS), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), }, 1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_0_0_0_4_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_0_0_0_4_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword(",", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_0_0_0_4_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_0_0_0_4_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_0_0_0_4_0_0_0, PRESENTS_0_0_0_4_0_0_1, PRESENTS_0_0_0_4_0_0_2, PRESENTS_0_0_0_4_0_0_3);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_0_0_0_4_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_0_0_0_4_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsCompound PRESENTS_0_0_0_4 = new de.claaswilke.presents.resource.presents.grammar.PresentsCompound(PRESENTS_0_0_0_4_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.PLUS);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_0_0_0_5 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__PERSONS), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), }, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_0_0_0_6 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("}", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak PRESENTS_0_0_0_7 = new de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_0_0_0_8 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__CONFLICTS), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.STAR, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), }, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak PRESENTS_0_0_0_9 = new de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_0_0_0_10 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__PAST_PRESENTS), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.STAR, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), }, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_0_0_0_0, PRESENTS_0_0_0_1, PRESENTS_0_0_0_2, PRESENTS_0_0_0_3, PRESENTS_0_0_0_4, PRESENTS_0_0_0_5, PRESENTS_0_0_0_6, PRESENTS_0_0_0_7, PRESENTS_0_0_0_8, PRESENTS_0_0_0_9, PRESENTS_0_0_0_10);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_0_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule PRESENTS_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsRule(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup(), PRESENTS_0_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_1_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PERSON__IDENTIFIER), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_1_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_1_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_1_0_0_0, PRESENTS_1_0_0_1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_1_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_1_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule PRESENTS_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsRule(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), PRESENTS_1_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_2_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.CONFLICT__CONFLICTOR), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_2_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_2_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("conflicts", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_2_0_0_3_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.CONFLICT__CONFLICTEES), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_2_0_0_3_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_2_0_0_3_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword(",", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_2_0_0_3_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_2_0_0_3_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_2_0_0_3_0_0_0, PRESENTS_2_0_0_3_0_0_1, PRESENTS_2_0_0_3_0_0_2, PRESENTS_2_0_0_3_0_0_3);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_2_0_0_3_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_2_0_0_3_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsCompound PRESENTS_2_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsCompound(PRESENTS_2_0_0_3_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.STAR);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_2_0_0_4 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.CONFLICT__CONFLICTEES), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak PRESENTS_2_0_0_5 = new de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_2_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_2_0_0_0, PRESENTS_2_0_0_1, PRESENTS_2_0_0_2, PRESENTS_2_0_0_3, PRESENTS_2_0_0_4, PRESENTS_2_0_0_5);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_2_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_2_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule PRESENTS_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsRule(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), PRESENTS_2_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_3_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("Past present", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_3_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_3_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("from", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_3_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_3_0_0_4 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT__FROM), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_3_0_0_5 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword("to", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_3_0_0_6 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_3_0_0_7_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT__TO), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), }, 1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_3_0_0_7_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsKeyword PRESENTS_3_0_0_7_0_0_2 = new de.claaswilke.presents.resource.presents.grammar.PresentsKeyword(",", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_3_0_0_7_0_0_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_3_0_0_7_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_3_0_0_7_0_0_0, PRESENTS_3_0_0_7_0_0_1, PRESENTS_3_0_0_7_0_0_2, PRESENTS_3_0_0_7_0_0_3);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_3_0_0_7_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_3_0_0_7_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsCompound PRESENTS_3_0_0_7 = new de.claaswilke.presents.resource.presents.grammar.PresentsCompound(PRESENTS_3_0_0_7_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.STAR);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsContainment PRESENTS_3_0_0_8 = new de.claaswilke.presents.resource.presents.grammar.PresentsContainment(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT__TO), de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, new org.eclipse.emf.ecore.EClass[] {de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), }, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak PRESENTS_3_0_0_9 = new de.claaswilke.presents.resource.presents.grammar.PresentsLineBreak(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_3_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_3_0_0_0, PRESENTS_3_0_0_1, PRESENTS_3_0_0_2, PRESENTS_3_0_0_3, PRESENTS_3_0_0_4, PRESENTS_3_0_0_5, PRESENTS_3_0_0_6, PRESENTS_3_0_0_7, PRESENTS_3_0_0_8, PRESENTS_3_0_0_9);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_3_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_3_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule PRESENTS_3 = new de.claaswilke.presents.resource.presents.grammar.PresentsRule(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), PRESENTS_3_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_4_0_0_0_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT_RULE__MULTIPLICATOR), "NUMBER", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace PRESENTS_4_0_0_0_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsWhiteSpace(1, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_4_0_0_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_4_0_0_0_0_0_0, PRESENTS_4_0_0_0_0_0_1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_4_0_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_4_0_0_0_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsCompound PRESENTS_4_0_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsCompound(PRESENTS_4_0_0_0_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.QUESTIONMARK);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder PRESENTS_4_0_0_1 = new de.claaswilke.presents.resource.presents.grammar.PresentsPlaceholder(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT_RULE__PERSON), "TEXT", de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, 0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsSequence PRESENTS_4_0_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsSequence(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_4_0_0_0, PRESENTS_4_0_0_1);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsChoice PRESENTS_4_0 = new de.claaswilke.presents.resource.presents.grammar.PresentsChoice(de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE, PRESENTS_4_0_0);
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule PRESENTS_4 = new de.claaswilke.presents.resource.presents.grammar.PresentsRule(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), PRESENTS_4_0, de.claaswilke.presents.resource.presents.grammar.PresentsCardinality.ONE);
	
	public static String getSyntaxElementID(de.claaswilke.presents.resource.presents.grammar.PresentsSyntaxElement syntaxElement) {
		if (syntaxElement == null) {
			// null indicates EOF
			return "<EOF>";
		}
		for (java.lang.reflect.Field field : de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.class.getFields()) {
			Object fieldValue;
			try {
				fieldValue = field.get(null);
				if (fieldValue == syntaxElement) {
					String id = field.getName();
					return id;
				}
			} catch (Exception e) { }
		}
		return null;
	}
	
	public static de.claaswilke.presents.resource.presents.grammar.PresentsSyntaxElement getSyntaxElementByID(String syntaxElementID) {
		try {
			return (de.claaswilke.presents.resource.presents.grammar.PresentsSyntaxElement) de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.class.getField(syntaxElementID).get(null);
		} catch (Exception e) {
			return null;
		}
	}
	
	public final static de.claaswilke.presents.resource.presents.grammar.PresentsRule[] RULES = new de.claaswilke.presents.resource.presents.grammar.PresentsRule[] {
		PRESENTS_0,
		PRESENTS_1,
		PRESENTS_2,
		PRESENTS_3,
		PRESENTS_4,
	};
	
	/**
	 * Returns all keywords of the grammar. This includes all literals for boolean and
	 * enumeration terminals.
	 */
	public java.util.Set<String> getKeywords() {
		if (this.keywords == null) {
			this.keywords = new java.util.LinkedHashSet<String>();
			for (de.claaswilke.presents.resource.presents.grammar.PresentsRule rule : RULES) {
				findKeywords(rule, this.keywords);
			}
		}
		return keywords;
	}
	
	/**
	 * Finds all keywords in the given element and its children and adds them to the
	 * set. This includes all literals for boolean and enumeration terminals.
	 */
	private void findKeywords(de.claaswilke.presents.resource.presents.grammar.PresentsSyntaxElement element, java.util.Set<String> keywords) {
		if (element instanceof de.claaswilke.presents.resource.presents.grammar.PresentsKeyword) {
			keywords.add(((de.claaswilke.presents.resource.presents.grammar.PresentsKeyword) element).getValue());
		} else if (element instanceof de.claaswilke.presents.resource.presents.grammar.PresentsBooleanTerminal) {
			keywords.add(((de.claaswilke.presents.resource.presents.grammar.PresentsBooleanTerminal) element).getTrueLiteral());
			keywords.add(((de.claaswilke.presents.resource.presents.grammar.PresentsBooleanTerminal) element).getFalseLiteral());
		} else if (element instanceof de.claaswilke.presents.resource.presents.grammar.PresentsEnumerationTerminal) {
			de.claaswilke.presents.resource.presents.grammar.PresentsEnumerationTerminal terminal = (de.claaswilke.presents.resource.presents.grammar.PresentsEnumerationTerminal) element;
			for (String key : terminal.getLiteralMapping().keySet()) {
				keywords.add(key);
			}
		}
		for (de.claaswilke.presents.resource.presents.grammar.PresentsSyntaxElement child : element.getChildren()) {
			findKeywords(child, this.keywords);
		}
	}
	
}
